#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QQmlContext>
#include <QQuickWidget>
#include <QStackedWidget>
#include <QStackedLayout>

#include "qanimationstackedwidget.h"

QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

public slots:
    void onNextPage(); // 切换至下一页
    void onPrevPage(); // 切换至上一页

    void onReturnSig();

    void onChangeSettingPage(int index);
    void onSettingReturnSig();

protected:
    void resizeEvent(QResizeEvent *event) override;

private:
    void initWidget(); // 初始化函数

private:
    Ui::MainWindow *ui;

    // QML预制
    QList<QQmlContext*> contextList; // 上下文列表
    QList<QQuickWidget*> quickWidgetList; // 窗口列表
    QStackedWidget* mainPageWidget; // qml容器
    QStackedLayout *containerLayout; // 容器布局
    QWidget *container; // 容器
    // 设置
    QStackedWidget *settingStackedWidget;
    // QAnimationStackedWidget *mainPageWidget;

    // 属性
    int pageCurrentIndex; // stackedWidget 当前页面

};
#endif // MAINWINDOW_H
